package com.study.d4_filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * Filter是JAVAWEB三大组件（Servlet Filter Listener）之一
 * 可以把对资源的请求拦截下来，从而实现一些特殊功能
 * 过滤器一般完成一些通用的操作，比如：登录校验，统一编码处理、敏感字符处理等
 */
@WebFilter("/*") //如果在spring的环境搭建的服务器，要在启动类加@ServletComponentScan，开启springboot项目对Servlet的支持
public class DemoFilter1 implements Filter {
    //初始化方法, web服务器启动, 创建Filter实例时调用, 只调用一次
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("init.......................");
    }
    //拦截到请求时,调用该方法,可以调用多次
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("1拦截到请求前........");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("1拦截到请求放行后........");
    }
    //销毁方法, web服务器关闭时调用, 只调用一次
    @Override
    public void destroy() {
        System.out.println("destroy........................");
    }
}
